//----------------------------------------------------------------------//
//  Clase creada automaticamente  -  miércoles, 23 de noviembre de 2011    //
//                                                                      //
//                    NO MODIFIQUE ESTE ARCHIVO!                        //
// Para realizar cambios en esta clase edite el archivo con este mismo  //
// nombre en la carpeta 'UserEntities' //
//----------------------------------------------------------------------//
using System;
using System.Collections;
using System.Collections.Specialized;
using System.Collections.Generic;
using System.Text;
using System.Data;
using DataBaseManager;
using Utilities.Common;
using BL.DataAccess;
using System.Linq;

namespace BL.Entities
{

    public class PrecioPrestacion
    {


        public Prestaciones  Prestacion { get; set; }
        public Double Precio { get; set; }

        public void Save (ObraSocial os){
        
                ParameterManager pM = new ParameterManager();
                pM.Add(new Parameter("NombreObra",os.NombreObra,true));
                pM.Add(new Parameter("IdPrestacion",this.Prestacion.IdPrestacion ));
                pM.Add(new Parameter("Precio",this.Precio));
                DataBase.Current.Insert(Tables.Prestaciones_ObraSocial, pM);
        }
        public void SaveUpdate(ObraSocial os)
        {

            //ParameterManager pM = new ParameterManager();
            //pM.Add(new Parameter("NombreObra", os.NombreObra,true));
            //pM.Add(new Parameter("IdPrestacion", this.Prestacion.IdPrestacion));
            //pM.Add(new Parameter("Precio", this.Precio));
            //DataBase.Current.Update(Tables.Prestaciones_ObraSocial, pM);

            string sql = "Update Prestaciones_ObraSocial set Precio = '" + this.Precio.ToString() + "' Where nombreObra = '" + os.NombreObra + "' and Idprestacion = " + this.Prestacion.IdPrestacion;

            DataBase.Current.ExecuteSQL(sql);
        }


    }

    public partial class ColeccionPrecioPrestaciones : List<PrecioPrestacion>
    {

        public static ColeccionPrecioPrestaciones LoadByObraSocial(ObraSocial os) {
            ColeccionPrecioPrestaciones cpp = new ColeccionPrecioPrestaciones();
            PrecioPrestacion o;
            string sqlstr = "Select * from Prestaciones_ObraSocial where NombreObra = '" + os.NombreObra + "'";
            DataTable dt = DataBase.Current.ExecuteSQL(sqlstr);
            foreach (DataRow dr in dt.Rows)
            {

                o = LoadRow(dr);
                cpp.Add(o);
            }


            return cpp;
        }

        private  static PrecioPrestacion  LoadRow(DataRow r)
        {
            PrecioPrestacion o = new PrecioPrestacion();
            if (r != null)
            {

                o.Precio = Double.Parse( r["precio"].ToString());
                o.Prestacion = ColeccionPrestaciones.Current.FindByID(r["idPrestacion"].ToString());
                
            }

            return o;
        }
        public bool isIn(Int32 idPrest) {
            foreach (var item in this)
            {
                if (item.Prestacion.IdPrestacion == idPrest) {
                    return true;
                }
            }

            return false;
        }


        public double GetPrecioById(int nroAux)
        {
            double precio = -1;
            foreach (var item in this)
            {
                if (item.Prestacion.IdPrestacion == nroAux) {
                    return item.Precio;
                }   
            }
            return precio;
        }

        public PrecioPrestacion  FindById(int id)
        {
            foreach (var item in this)
            {
                if (item.Prestacion.IdPrestacion == id) {
                    return item; 
                }
            }            

            return null;
        }
    }



	[TableName("ObrasSociales")]
	public partial class ObraSocial
	{
		#region Propiedades
		[IsId]
		public String NombreObra { get; set; }
		public String Domicilio { get; set; }
		public String Localidad { get; set; }
		public String CodigoPostal { get; set; }
		public String Telefono { get; set; }
		public String Mail { get; set; }
		public String Fax { get; set; }
        public String NroPrestador { get; set; }
        [NotSave]
        public ColeccionPrecioPrestaciones PrecioPrestaciones{ get; set; }


		#endregion

	}
}
